package com.becca.cake.model.order;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

import org.apache.commons.lang.StringUtils;
import org.springframework.format.annotation.DateTimeFormat;

import com.becca.cake.core.exception.ServiceException;

/**
 * 订单实体
 * @copyright  尊星(上海)信息科技有限公司
 * @author hejinguo
 * @date 2016年4月10日 上午3:08:17
 */
public class OrderModel implements Serializable {
    /**  */
    private static final long       serialVersionUID           = 4080829073264614795L;

    /**订单编号为空*/
    public static final String      ORDER_ID_NULL              = "订单编号为空";
    /**订单状态不能为空*/
    public static final String      ORDER_STATUS_NULL          = "订单状态为空";
    /**订单信息不存在*/
    public static final String      ORDER_NO_EXISTS            = "订单信息不存在";
    /**订单已确认不能取消*/
    public static final String      ORDER_STATUS_NO_CANCEL     = "订单已确认不能取消";

    /**订单中商品为空*/
    public static final String      ORDER_GOODS_NULL           = "订单中商品不能为空";
    /**收货人不能为空*/
    public static final String      CONSIGNEE_IS_NULL          = "收货人不能为空";
    /**收货人电话不能为空*/
    public static final String      CONSIGNEE_PHONE_IS_NULL    = "收货人电话不能为空";
    /**收货人地址不能为空*/
    public static final String      CONSIGNEE_ADDRESS_IS_NULL  = "收货人地址不能为空";
    /**支付方式不能为空*/
    public static final String      PAY_TYPE_IS_NULL           = "支付方式不能为空";
    /**订单来源不能为空*/
    public static final String      ORDER_SOURCE_IS_NULL       = "订单来源不能为空";
    /**是否使用优惠券状态不能为空*/
    public static final String      USER_COUPON_IS_NULL        = "是否使用优惠券状态不能为空";
    /**优惠券编号不能为空*/
    public static final String      COUPON_ID_IS_NULL          = "优惠券编号不能为空";
    /**优惠券金额不能为空*/
    public static final String      COUPON_FEE_IS_NULL         = "优惠券金额不能为空";
    /**配送日期不能为空*/
    public static final String      DELIVERY_DATE_IS_NULL      = "配送日期不能为空";
    /**配送时间段不能为空*/
    public static final String      DELIVERY_TIMES_IS_NULL     = "配送时间段不能为空";
    /**餐具数量不能为空*/
    public static final String      LAID_NUMBER_IS_NULL        = "餐具数量不能为空";
    /**餐具数量不能小于0*/
    public static final String      LAID_NUMBER_NO_LESS_ZERO   = "餐具数量不能小于0";
    /**蜡烛数量不能为空*/
    public static final String      CANDLE_NUMBER_IS_NULL      = "蜡烛数量不能为空";
    /**蜡烛数量不能小于0*/
    public static final String      CANDLE_NUMBER_NO_LESS_ZERO = "蜡烛数量不能小于0";
    /**订单待支付状态已变更*/
    public static final String      ORDER_STATUS_NO_WAIT_PAY   = "订单待支付状态已变更";
    /**创建微信预支付交易单失败*/
    public static final String      WECHAT_UNIFIED_FAIL        = "创建微信预支付交易单失败";
    /**创建订单失败*/
    public static final String      CREATE_ORDER_FAIL          = "创建订单失败";
    /**订单状态异常*/
    public static final String      ORDER_STARUS_EXCEPTION     = "订单状态异常";

    /**物流单号不能为空*/
    public static final String      ORDER_LOGISTICNO_NULL      = "物流单号不能为空";

    /**请选择对应 的打印机*/
    public static final String      PRINT_SERVIE_NAME_NULL     = "请选择对应 的打印机";

    /**配送员联系方式不能为空*/
    public static final String      DELIVERY_PHONE_IS_NULL     = "配送员联系方式不能为空";
    /**配送员不能为空*/
    public static final String      DELIVERY_MAN_IS_NULL       = "配送员不能为空";
    /**拒收原因不能为空*/
    public static final String      REFUNDS_REASON_IS_NULL     = "拒收原因不能为空";
    /**优惠码不能为空不能为空*/
    public static final String      COUPON_CODE_IS_NULL        = "优惠码不能为空";

    /**订单状态(0:待支付）*/
    public static final Byte        ORDER_STATUS_WAIT_PAY      = 0;
    /**订单状态(1:已支付）*/
    public static final Byte        ORDER_STATUS_PAY           = 1;
    /**订单状态(1:确认中 ）*/
    public static final Byte        ORDER_STATUS_CONFIRM       = 1;
    /**订单状态(2:已确认 ）*/
    public static final Byte        ORDER_STATUS_CONFIRMED     = 2;
    /**订单状态(3:备货中 ）*/
    public static final Byte        ORDER_STATUS_PRODUCE       = 3;
    /**订单状态(4:已发货 ）*/
    public static final Byte        ORDER_STATUS_SENDED        = 4;
    /**订单状态(5:已完成）*/
    public static final Byte        ORDER_STATUS_COMLETER      = 5;

    /**订单状态(6:已取消）*/
    public static final Byte        ORDER_STATUS_CNACEL        = 6;

    /**订单状态(7:已申请退款）*/
    public static final Byte        ORDER_STATUS_APPLY_REFUNDS = 7;

    /**订单状态(8:退款中 ）*/
    public static final Byte        ORDER_REFUNDING_ORDER      = 8;

    /**订单状态(9:已退款 ）*/
    public static final Byte        ORDER_REFUND_ORDER         = 9;

    /**支付状态(0:待支付)*/
    public static final Byte        PAY_STATUS_WAIT_PAY        = 0;

    /**支付状态(1:已支付)*/
    public static final Byte        PAY_STATUS_ALREADY_PAY     = 1;

    /**支付状态(2:超时未支付)*/
    public static final Byte        PAY_STATUS_NO_PAY          = 2;

    /**订单类型(2:试吃订单)*/
    public static final Byte        ORDER_TYPE_APPLYEAT        = 2;

    /**支付方式(2:无)*/
    public static final Byte        PAY_TYPE_NULL              = 2;
    /**订单来源(2:无)*/
    public static final Byte        ORDER_SOURCE_NULL          = 2;

    /**支付金额 ：试吃或面单支付金额：0.00*/
    public static final Double      PAY_NOTHING_MONEY          = 0.00;

    /**是否需要发票 0：不需要*/
    public static final Byte        NEED_INVOICE_NO            = 0;
    /**优惠类型 0：不使用优惠券*/
    public static final Byte        COUPON_TYPE_NO             = 0;

    /**订单直接完成*/
    public static final Byte        ORDER_FINISH               = 1;

    private Integer                 id;
    /**订单编号*/
    private String                  orderCode;
    /**用户ID*/
    private Integer                 userId;
    /**支付流水ID*/
    private Integer                 userPaymentId;
    /**订单类型(0:普通订单 1:企业订单 2:试吃订单 3:免单订单)*/
    private Byte                    orderType;
    /**订单状态(0:待付款 1:确认中 2:已确认 3:备货中 4:已发货 5:已完成 6:已取消)*/
    private Byte                    orderStatus;
    /**订单状态多值*/
    private String                  orderStatusIds;
    /**支付状态(0:待支付 1:已支付 2:用户取消支付  3:超时未支付)*/
    private Byte                    payStatus;
    /**支付方式(0:微信 1：支付宝)*/
    private Byte                    payType;
    /**订单来源(0:微信 1：微博)*/
    private Byte                    orderSource;
    /**支付时间*/
    private Date                    payDate;
    /**支付期限时间*/
    private Date                    limitPayDate;
    /**订单总金额*/
    private Double                  totalAmount;
    /**实际支付金额*/
    private Double                  payAmount;
    /**商品数量*/
    private Integer                 goodsNumber;
    /**配送日期*/
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date                    deliveryDate;
    /**配送时间段*/
    private String                  deliveryTimes;
    /**配送费用*/
    private Double                  deliveryFee                = 0D;
    /**优惠类型*/
    private Byte                    couponType;
    /**优惠券(优惠码)ID*/
    private Integer                 couponId;
    /**优惠码*/
    private String                  couponCode;

    /**优惠券金额*/
    private Double                  couponFee;
    /**收货人*/
    private String                  consignee;
    /**收货人电话*/
    private String                  consignPhone;
    /**收货人地址*/
    private String                  consignAddress;

    /**是否需要发票*/
    private Byte                    isNeedInvoice;
    /**发票内容*/
    private String                  invoiceContent;
    /**发票抬头*/
    private String                  invoiceTitle;

    /**生日牌文字*/
    private String                  birthdayTitle;
    /**生日卡片*/
    private String                  birthdayCard;
    /**备注*/
    private String                  remark;
    /**支付显示商品名称*/
    private String                  payGoodsName;
    /**取消日期*/
    private Date                    cancelDate;
    /**取消原因*/
    private String                  cancelReason;
    /**创建时间*/
    private Date                    createdDate;
    /**创建人*/
    private String                  createdName;
    /**修改时间*/
    private Date                    updatedDate;
    /**修改人*/
    private String                  updatedName;
    /**拒收原因*/
    private String                  refundsReason;

    /**地址精度*/
    private String                  longitude;
    /**地址维度*/
    private String                  latitude;

    /*************************************************/
    /**系统时间*/
    private Date                    systemDate;
    /**订单明细集合*/
    private List<OrderDetailsModel> goodsList;
    /**是否已分享(0：未分享 1：已分享)*/
    private Byte                    isPartook;

    /**餐具数量*/
    private Integer                 laidNumber;
    /**蜡烛数量*/
    private Integer                 candleNumber;

    /**取消人*/
    private String                  cancelName;

    /**确认收货时间*/
    private String                  receivedDate;

    private String                  logisticNo;

    private String                  userName;

    /**配送开始时间*/
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date                    deliveryDateStart;
    /**配送结束时间*/
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date                    deliveryDateEnd;

    /**商品订单名称*/
    private String                  goodsFixingOrderName;

    /**商品类型 0：商品   1：配件*/
    private Byte                    goodsType;
    /**商品重量*/
    private String                  goodsWeight;
    /**商品尺寸*/
    private String                  goodsSize;
    /**商品名称*/
    private String                  goodsName;

    /**创建开始时间*/
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date                    orderCreateStartDate;
    /**创建结束时间*/
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date                    orderCreateEndDate;
    /**物流状态信息*/
    private String                  logisticMessage;
    /**注册手机号*/
    private String                  userMobileNo;

    private Byte                    isReferenceInvoice;
    /**优惠来源*/
    private String                  couponSource;
    /**优惠码名称*/
    private String                  couponCodeName;

    /**订单确认时间*/
    private Date                    confirmedDate;

    private Integer                 orderSum;

    private Integer                 goodsSum;

    private Double                  orderSumPrice;

    private Double                  orderPayPrice;

    private Double                  refundsPrice;

    private Byte                    beforeRefundOrderStatus;

    /****************新加字段****************/

    private String                  payTypes;

    private String                  orderTypes;

    private String                  couponTypes;

    private Byte                    orderFinish;
    
    //试吃公司名称
    private String 					companyName;
    
    //试吃申请人
    private String 					applyUserName;	
    
    //试吃申请人电话
    private String 					applyUserPhone;
    
    //公司规模
    private String  				companyScale;

    /**
     * 订单状态转换
     * @param orderStatus
     * @return
     */
    public static String getTransOrderStstus(Integer orderStatus) {
        if (orderStatus == 0) {
            return "0";
        } else if (orderStatus == 1) {
            return "1,2,3";
        } else if (orderStatus == 2) {
            return "4";
        } else if (orderStatus == 3) {
            return "";
        }
        return "";
    }

    /**
     * 订单类型转换
     * @param orderStatus
     * @return
     */
    public static String getTransOrderType(Byte orderType) {
        if (orderType == 0) {
            return "普通订单";
        } else if (orderType == 1) {
            return "企业订单";
        } else if (orderType == 2) {
            return "试吃订单";
        } else if (orderType == 3) {
            return "免单订单";
        } else if (orderType == 4) {
            return "B2B订单";
        } else if (orderType == 5) {
            return "OCL订单";
        } else if (orderType == 6) {
            return "点评(美团)订单";
        } else if (orderType == 7) {
            return "生日管家订单";
        }
        return "";
    }

    public static String getDayOrderStatus() {
        return "1,2,3,4,5";
    }

    public static String getOrdersStatus() {
        return "0,1,2,3,4,5";
    }

    /**
     * 发票管理订单显示
     * @return
     */
    public static String getInvoiceOrderStatus() {
        return "2,3,4,5";
    }

    /**
     * 退款订单显示
     * @return
     */
    public static String getRefusedOrderStatus() {
        return "7,8,9";
    }

    /**
     * 校验订单编号
     * @param id
     */
    public static void validOrderIdNull(Integer id) {
        if (id == null) {
            throw new ServiceException(OrderModel.ORDER_ID_NULL);
        }
    }

    /**
     * 修改订单状态数据校验
     * @param orderId
     * @param orderStatus
     * @param statusName
     * @return
     */
    public static void validateUpdateOrderStatus(String orderIds, Byte orderStatus,
                                                 String statusName) {
        if (StringUtils.isEmpty(orderIds)) {
            throw new ServiceException(OrderModel.ORDER_ID_NULL);
        }
        if (orderStatus == null) {
            throw new ServiceException(OrderModel.ORDER_STATUS_NULL);
        }

        if (StringUtils.isEmpty(statusName)) {
            throw new ServiceException(OrderModel.ORDER_STATUS_NULL);
        }
    }

    /**
     * 拒收时数据校验
     * @param orderId
     * @param orderStatus
     * @param refundsReason
     */
    public static void validateUpdateRefuseOrderStatus(String orderId, Integer orderStatus,
                                                       String refundsReason) {
        if (StringUtils.isEmpty(orderId)) {
            throw new ServiceException(OrderModel.ORDER_ID_NULL);
        }
        if (orderStatus == null) {
            throw new ServiceException(OrderModel.ORDER_STATUS_NULL);
        }
        if (StringUtils.isEmpty(refundsReason)) {
            throw new ServiceException(OrderModel.REFUNDS_REASON_IS_NULL);
        }
    }

    /**
     * 修改物流单号校验
     * @param orderId
     * @param logisticNo
     */
    public static void validateUpdateOrderLogisticNo(Integer orderId, String logisticNo) {
        if (orderId == null) {
            throw new ServiceException(OrderModel.ORDER_ID_NULL);
        }
        if (StringUtils.isEmpty(logisticNo)) {
            throw new ServiceException(OrderModel.ORDER_LOGISTICNO_NULL);
        }
    }

    /**
     * 修改订单对象校验
     */
    public static void validUpdateOrder(OrderModel orderModel) {
        if (orderModel.getId() == null) {
            throw new ServiceException(OrderModel.ORDER_ID_NULL);
        }
        if (StringUtils.isEmpty(orderModel.getConsignAddress())) {
            throw new ServiceException(OrderModel.CONSIGNEE_ADDRESS_IS_NULL);
        }
        if (StringUtils.isEmpty(orderModel.getConsignee())) {
            throw new ServiceException(OrderModel.CONSIGNEE_IS_NULL);
        }
        if (StringUtils.isEmpty(orderModel.getConsignPhone())) {
            throw new ServiceException(OrderModel.CONSIGNEE_PHONE_IS_NULL);
        }
        if (orderModel.getDeliveryDate() == null) {
            throw new ServiceException(OrderModel.DELIVERY_DATE_IS_NULL);
        }
        if (orderModel.getDeliveryTimes() == null) {
            throw new ServiceException(OrderModel.DELIVERY_TIMES_IS_NULL);
        }
    }

    /**
     * 热敏打印数据校验
     * @param orderId
     * @param printServiceName
     */
    public static void validatePrintThermalValidate(String orderId) {
        if (StringUtils.isEmpty(orderId)) {
            throw new ServiceException(OrderModel.ORDER_ID_NULL);
        }
    }

    /**
     * 填写物流人员信息
     * @param orderId
     * @param deliveryMan
     * @param deliveryMobileNo
     */
    public static void validateOrderDeliveryInfoParam(Integer orderId, String deliveryMan,
                                                      String deliveryMobileNo) {
        if (orderId == null) {
            throw new ServiceException(OrderModel.ORDER_ID_NULL);
        }
        if (StringUtils.isEmpty(deliveryMan)) {
            throw new ServiceException(OrderModel.DELIVERY_MAN_IS_NULL);
        }
        if (StringUtils.isEmpty(deliveryMobileNo)) {
            throw new ServiceException(OrderModel.DELIVERY_PHONE_IS_NULL);
        }
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getOrderCode() {
        return orderCode;
    }

    public void setOrderCode(String orderCode) {
        this.orderCode = orderCode;
    }

    public Integer getUserId() {
        return userId;
    }

    public void setUserId(Integer userId) {
        this.userId = userId;
    }

    public Integer getUserPaymentId() {
        return userPaymentId;
    }

    public void setUserPaymentId(Integer userPaymentId) {
        this.userPaymentId = userPaymentId;
    }

    public Byte getOrderStatus() {
        return orderStatus;
    }

    public void setOrderStatus(Byte orderStatus) {
        this.orderStatus = orderStatus;
    }

    public Byte getPayStatus() {
        return payStatus;
    }

    public void setPayStatus(Byte payStatus) {
        this.payStatus = payStatus;
    }

    public Byte getOrderSource() {
        return orderSource;
    }

    public void setOrderSource(Byte orderSource) {
        this.orderSource = orderSource;
    }

    public Byte getPayType() {
        return payType;
    }

    public void setPayType(Byte payType) {
        this.payType = payType;
    }

    public Date getPayDate() {
        return payDate;
    }

    public void setPayDate(Date payDate) {
        this.payDate = payDate;
    }

    public Date getLimitPayDate() {
        return limitPayDate;
    }

    public void setLimitPayDate(Date limitPayDate) {
        this.limitPayDate = limitPayDate;
    }

    public Double getTotalAmount() {
        return totalAmount;
    }

    public void setTotalAmount(Double totalAmount) {
        this.totalAmount = totalAmount;
    }

    public Double getPayAmount() {
        return payAmount;
    }

    public void setPayAmount(Double payAmount) {
        this.payAmount = payAmount;
    }

    public Date getDeliveryDate() {
        return deliveryDate;
    }

    public void setDeliveryDate(Date deliveryDate) {
        this.deliveryDate = deliveryDate;
    }

    public String getDeliveryTimes() {
        return deliveryTimes;
    }

    public void setDeliveryTimes(String deliveryTimes) {
        this.deliveryTimes = deliveryTimes;
    }

    public Double getDeliveryFee() {
        return deliveryFee;
    }

    public void setDeliveryFee(Double deliveryFee) {
        this.deliveryFee = deliveryFee;
    }

    public Byte getCouponType() {
        return couponType;
    }

    public void setCouponType(Byte couponType) {
        this.couponType = couponType;
    }

    public String getCouponCode() {
        return couponCode;
    }

    public void setCouponCode(String couponCode) {
        this.couponCode = couponCode;
    }

    public Integer getCouponId() {
        return couponId;
    }

    public void setCouponId(Integer couponId) {
        this.couponId = couponId;
    }

    public Double getCouponFee() {
        return couponFee;
    }

    public void setCouponFee(Double couponFee) {
        this.couponFee = couponFee;
    }

    public String getConsignee() {
        return consignee;
    }

    public void setConsignee(String consignee) {
        this.consignee = consignee;
    }

    public String getConsignPhone() {
        return consignPhone;
    }

    public void setConsignPhone(String consignPhone) {
        this.consignPhone = consignPhone;
    }

    public String getConsignAddress() {
        return consignAddress;
    }

    public void setConsignAddress(String consignAddress) {
        this.consignAddress = consignAddress;
    }

    public Byte getIsNeedInvoice() {
        return isNeedInvoice;
    }

    public void setIsNeedInvoice(Byte isNeedInvoice) {
        this.isNeedInvoice = isNeedInvoice;
    }

    public String getInvoiceContent() {
        return invoiceContent;
    }

    public void setInvoiceContent(String invoiceContent) {
        this.invoiceContent = invoiceContent;
    }

    public String getInvoiceTitle() {
        return invoiceTitle;
    }

    public void setInvoiceTitle(String invoiceTitle) {
        this.invoiceTitle = invoiceTitle;
    }

    public String getBirthdayTitle() {
        return birthdayTitle;
    }

    public void setBirthdayTitle(String birthdayTitle) {
        this.birthdayTitle = birthdayTitle;
    }

    public String getBirthdayCard() {
        return birthdayCard;
    }

    public void setBirthdayCard(String birthdayCard) {
        this.birthdayCard = birthdayCard;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public Date getCancelDate() {
        return cancelDate;
    }

    public void setCancelDate(Date cancelDate) {
        this.cancelDate = cancelDate;
    }

    public String getCancelReason() {
        return cancelReason;
    }

    public void setCancelReason(String cancelReason) {
        this.cancelReason = cancelReason;
    }

    public Date getCreatedDate() {
        return createdDate;
    }

    public void setCreatedDate(Date createdDate) {
        this.createdDate = createdDate;
    }

    public String getCreatedName() {
        return createdName;
    }

    public void setCreatedName(String createdName) {
        this.createdName = createdName;
    }

    public Date getUpdatedDate() {
        return updatedDate;
    }

    public void setUpdatedDate(Date updatedDate) {
        this.updatedDate = updatedDate;
    }

    public String getUpdatedName() {
        return updatedName;
    }

    public void setUpdatedName(String updatedName) {
        this.updatedName = updatedName;
    }

    public Integer getGoodsNumber() {
        return goodsNumber;
    }

    public void setGoodsNumber(Integer goodsNumber) {
        this.goodsNumber = goodsNumber;
    }

    public Date getSystemDate() {
        return systemDate;
    }

    public void setSystemDate(Date systemDate) {
        this.systemDate = systemDate;
    }

    public List<OrderDetailsModel> getGoodsList() {
        return goodsList;
    }

    public void setGoodsList(List<OrderDetailsModel> goodsList) {
        this.goodsList = goodsList;
    }

    public Byte getIsPartook() {
        return isPartook;
    }

    public void setIsPartook(Byte isPartook) {
        this.isPartook = isPartook;
    }

    public Integer getLaidNumber() {
        return laidNumber;
    }

    public void setLaidNumber(Integer laidNumber) {
        this.laidNumber = laidNumber;
    }

    public Integer getCandleNumber() {
        return candleNumber;
    }

    public void setCandleNumber(Integer candleNumber) {
        this.candleNumber = candleNumber;
    }

    public String getPayGoodsName() {
        return payGoodsName;
    }

    public void setPayGoodsName(String payGoodsName) {
        this.payGoodsName = payGoodsName;
    }

    public String getCancelName() {
        return cancelName;
    }

    public void setCancelName(String cancelName) {
        this.cancelName = cancelName;
    }

    public String getReceivedDate() {
        return receivedDate;
    }

    public void setReceivedDate(String receivedDate) {
        this.receivedDate = receivedDate;
    }

    public String getLogisticNo() {
        return logisticNo;
    }

    public void setLogisticNo(String logisticNo) {
        this.logisticNo = logisticNo;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public Date getDeliveryDateStart() {
        return deliveryDateStart;
    }

    public void setDeliveryDateStart(Date deliveryDateStart) {
        this.deliveryDateStart = deliveryDateStart;
    }

    public Date getDeliveryDateEnd() {
        return deliveryDateEnd;
    }

    public void setDeliveryDateEnd(Date deliveryDateEnd) {
        this.deliveryDateEnd = deliveryDateEnd;
    }

    public String getGoodsFixingOrderName() {
        return goodsFixingOrderName;
    }

    public void setGoodsFixingOrderName(String goodsFixingOrderName) {
        this.goodsFixingOrderName = goodsFixingOrderName;
    }

    public Byte getGoodsType() {
        return goodsType;
    }

    public void setGoodsType(Byte goodsType) {
        this.goodsType = goodsType;
    }

    public String getGoodsWeight() {
        return goodsWeight;
    }

    public void setGoodsWeight(String goodsWeight) {
        this.goodsWeight = goodsWeight;
    }

    public String getGoodsSize() {
        return goodsSize;
    }

    public void setGoodsSize(String goodsSize) {
        this.goodsSize = goodsSize;
    }

    public String getGoodsName() {
        return goodsName;
    }

    public void setGoodsName(String goodsName) {
        this.goodsName = goodsName;
    }

    public Date getOrderCreateStartDate() {
        return orderCreateStartDate;
    }

    public void setOrderCreateStartDate(Date orderCreateStartDate) {
        this.orderCreateStartDate = orderCreateStartDate;
    }

    public Date getOrderCreateEndDate() {
        return orderCreateEndDate;
    }

    public void setOrderCreateEndDate(Date orderCreateEndDate) {
        this.orderCreateEndDate = orderCreateEndDate;
    }

    public String getLogisticMessage() {
        return logisticMessage;
    }

    public void setLogisticMessage(String logisticMessage) {
        this.logisticMessage = logisticMessage;
    }

    public String getUserMobileNo() {
        return userMobileNo;
    }

    public void setUserMobileNo(String userMobileNo) {
        this.userMobileNo = userMobileNo;
    }

    public String getRefundsReason() {
        return refundsReason;
    }

    public void setRefundsReason(String refundsReason) {
        this.refundsReason = refundsReason;
    }

    public Byte getOrderType() {
        return orderType;
    }

    public void setOrderType(Byte orderType) {
        this.orderType = orderType;
    }

    public Byte getIsReferenceInvoice() {
        return isReferenceInvoice;
    }

    public void setIsReferenceInvoice(Byte isReferenceInvoice) {
        this.isReferenceInvoice = isReferenceInvoice;
    }

    public String getOrderStatusIds() {
        return orderStatusIds;
    }

    public void setOrderStatusIds(String orderStatusIds) {
        this.orderStatusIds = orderStatusIds;
    }

    public String getCouponCodeName() {
        return couponCodeName;
    }

    public void setCouponCodeName(String couponCodeName) {
        this.couponCodeName = couponCodeName;
    }

    public Date getConfirmedDate() {
        return confirmedDate;
    }

    public void setConfirmedDate(Date confirmedDate) {
        this.confirmedDate = confirmedDate;
    }

    public Integer getOrderSum() {
        return orderSum;
    }

    public Integer getGoodsSum() {
        return goodsSum;
    }

    public Double getOrderSumPrice() {
        return orderSumPrice;
    }

    public Double getOrderPayPrice() {
        return orderPayPrice;
    }

    public void setOrderSum(Integer orderSum) {
        this.orderSum = orderSum;
    }

    public void setGoodsSum(Integer goodsSum) {
        this.goodsSum = goodsSum;
    }

    public void setOrderSumPrice(Double orderSumPrice) {
        this.orderSumPrice = orderSumPrice;
    }

    public void setOrderPayPrice(Double orderPayPrice) {
        this.orderPayPrice = orderPayPrice;
    }

    public String getLongitude() {
        return longitude;
    }

    public String getLatitude() {
        return latitude;
    }

    public void setLongitude(String longitude) {
        this.longitude = longitude;
    }

    public void setLatitude(String latitude) {
        this.latitude = latitude;
    }

    @Override
    public String toString() {
        return "OrderDO [id=" + id + ", orderCode=" + orderCode + ", userId=" + userId
               + ", userPaymentId=" + userPaymentId + ", orderStatus=" + orderStatus
               + ", payStatus=" + payStatus + ", payType=" + payType + ", payDate=" + payDate
               + ", limitPayDate=" + limitPayDate + ", totalAmount=" + totalAmount + ", payAmount="
               + payAmount + ", deliveryDate=" + deliveryDate + ", deliveryFee=" + deliveryFee
               + ", couponId=" + couponId + ", couponFee=" + couponFee + ", consignee=" + consignee
               + ", consignPhone=" + consignPhone + ", consignAddress=" + consignAddress
               + ", birthdayTitle=" + birthdayTitle + ", birthdayCard=" + birthdayCard
               + ", remark=" + remark + ", cancelDate=" + cancelDate + ", cancelReason="
               + cancelReason + ", createdDate=" + createdDate + ", createdName=" + createdName
               + ", updatedDate=" + updatedDate + ", updatedName=" + updatedName + ",cancelName="
               + cancelName + ",receivedDate=" + receivedDate + ",logisticNo=" + logisticNo + "]";
    }

    public String getCouponSource() {
        return couponSource;
    }

    public void setCouponSource(String couponSource) {
        this.couponSource = couponSource;
    }

    public Double getRefundsPrice() {
        return refundsPrice;
    }

    public void setRefundsPrice(Double refundsPrice) {
        this.refundsPrice = refundsPrice;
    }

    public Byte getBeforeRefundOrderStatus() {
        return beforeRefundOrderStatus;
    }

    public void setBeforeRefundOrderStatus(Byte beforeRefundOrderStatus) {
        this.beforeRefundOrderStatus = beforeRefundOrderStatus;
    }

    public String getPayTypes() {
        return payTypes;
    }

    public String getOrderTypes() {
        return orderTypes;
    }

    public String getCouponTypes() {
        return couponTypes;
    }

    public void setPayTypes(String payTypes) {
        this.payTypes = payTypes;
    }

    public void setOrderTypes(String orderTypes) {
        this.orderTypes = orderTypes;
    }

    public void setCouponTypes(String couponTypes) {
        this.couponTypes = couponTypes;
    }

    public Byte getOrderFinish() {
        return orderFinish;
    }

    public void setOrderFinish(Byte orderFinish) {
        this.orderFinish = orderFinish;
    }

	public String getCompanyName()
	{
		return companyName;
	}

	public void setCompanyName(String companyName)
	{
		this.companyName = companyName;
	}

	public String getApplyUserName()
	{
		return applyUserName;
	}

	public void setApplyUserName(String applyUserName)
	{
		this.applyUserName = applyUserName;
	}

	public String getApplyUserPhone()
	{
		return applyUserPhone;
	}

	public void setApplyUserPhone(String applyUserPhone)
	{
		this.applyUserPhone = applyUserPhone;
	}

	public String getCompanyScale()
	{
		return companyScale;
	}

	public void setCompanyScale(String companyScale)
	{
		this.companyScale = companyScale;
	}
    
    

}
